package controller

import (
	"github.com/gin-gonic/gin"
)

// ✅ 实现 app/routes.RouterRegistrar 接口的 RegisterRoutes 方法
func (c *UserController) RegisterRoutes(r *gin.RouterGroup) {
	r.GET("/", c.GetUserList)
	r.GET("/:id", c.GetUserByID)
	r.POST("/", c.CreateUser)
	r.PUT("/:id", c.UpdateUser)
	r.DELETE("/:id", c.DeleteUser)
}

// UserController 是用户模块的控制器
type UserController struct {
	//userService services.UserService
}

// 👇 关键：模块自己负责初始化 service 和 controller，并把自己注册进全局路由系统

func NewUserController() *UserController {
	return &UserController{}
}

// NewUserController 构造函数
//func NewUserController(us services.UserService) *UserController {
//	return &UserController{
//		userService: us,
//	}
//}

// 以下是具体的 Handler 方法（示例）
func (c *UserController) GetUserList(ctx *gin.Context) {
	ctx.JSON(200, gin.H{"message": "user list from controller"})
}
func (c *UserController) GetUserByID(ctx *gin.Context) {
	id := ctx.Param("id")
	ctx.JSON(200, gin.H{"message": "get user by id", "id": id})
}
func (c *UserController) CreateUser(ctx *gin.Context) {
	ctx.JSON(201, gin.H{"message": "user created"})
}
func (c *UserController) UpdateUser(ctx *gin.Context) {
	id := ctx.Param("id")
	ctx.JSON(200, gin.H{"message": "user updated", "id": id})
}
func (c *UserController) DeleteUser(ctx *gin.Context) {
	id := ctx.Param("id")
	ctx.JSON(200, gin.H{"message": "user deleted", "id": id})
}
